/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.controle.mdb;

import br.com.controle.entity.Medida;
import br.com.controle.entity.Pedido;
import br.com.controle.entity.Pessoa;
import br.com.controle.entity.Produto;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;

/**
 *
 * @author munhofi
 */
@MessageDriven(mappedName = "jms/NotificationQueue", activationConfig = {
    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class NotificationBean implements MessageListener {
    
    public NotificationBean() {
    }
    
    @Override
    public void onMessage(Message message)
    {
        try
        {
            Object msgObj = ((ObjectMessage)message).getObject();
            if (msgObj != null)
            {
                if( msgObj instanceof String){
                    System.out.println("onMessageString=" + msgObj);
                }
                if( msgObj instanceof Medida){
                    Medida m = (Medida) msgObj;
                    System.out.println("onMessageMedida cadastrada=" + m.getNome());
                }
                if( msgObj instanceof Pedido){
                    Pedido m = (Pedido) msgObj;
                    System.out.println("onMessagePedido cadastrada=" + m.getIdPessoa().getNome());
                }
                if( msgObj instanceof Produto){
                    Produto m = (Produto) msgObj;
                    System.out.println("onMessageProduto cadastrada=" + m.getNome());
                }
                if( msgObj instanceof Pessoa){
                    Pessoa m = (Pessoa) msgObj;
                    System.out.println("onMessagePessoacadastrada=" + m.getNome());
                }                
                
            }
        }
        catch (JMSException ex)
        {
            Logger.getLogger(NotificationBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
